import axios from 'axios';
import config from '../config';

export default class BaseServices {
  constructor(url) {
    this.url = url;
  }

  /**
   * 分页方式获取数据
   */
  getData(page = 1, cb) {
    axios.get(`${config.serverUrl}/api/v1/${this.url}`, { params: { page } })
      .then((res) => {
        // axios中成功之后服务器端返回的数据在data属性节点中
        // console.group('axios服务器端返回的数据');
        // console.log(res);
        // console.groupEnd();
        cb(res.data);
      });
  }
  /**
   * 根据id获取数据
   */
  getDataById(id, cb) {
    axios.get(`${config.serverUrl}/api/v1/${this.url}/${id}`)
      .then((res) => {
        cb(res.data);
      });
  }

  /**
   * 创建新数据
   */
  create(model, cb) {
    axios.post(`${config.serverUrl}/api/v1/${this.url}/create`, model)
      .then((res) => {
        cb(res.data);
      });
  }

  /**
   * 修改数据
   */
  update(id, model, cb) {
    axios.post(`${config.serverUrl}/api/v1/${this.url}/update/${id}`, model)
      .then((res) => {
        cb(res.data);
      });
  }

  /**
   * 根据id删除
   */
  delete(id, cb) {
    axios.post(`${config.serverUrl}/api/v1/${this.url}/delete/${id}`)
      .then((res) => {
        cb(res.data);
      });
  }
}
